iT邦幫忙

2021 iThome 鐵人賽

DAY 23
0

第四個範例跟機器視覺與影像辨識有關, 我們先來了解一下什麼是機器視覺.

機器視覺

機器視覺想要做的事情是模仿人類的視覺能力, 讓機器也能夠了解影片或圖中的內容, 例如機器能夠知道影片或圖片中有沒有某種特定的物體.

  • 規則式判斷
    機器視覺的應用很早就開始, 例如工廠將機器視覺應用在瑕疵檢測, 以自動化的方式取代(或輔助)人工檢測.當時的應用以規則式(rule-based)為主, 也就是必需告訴電腦如何判斷不同種類的規則內容, 這樣電腦在取得影像之後就能協助判斷規則是否成立, 達到自動檢測的效果.
    以影像的實作面來說, 最常使用的是OpenCV. OpenCV是Intel所開發並開源的專案, 專門用來處理影像或圖檔, 例如圖檔的平移旋轉水平翻轉影像縮放裁剪亮暗調整影像膨脹侵蝕透視轉換等功能.
    但以規則式(rule-based)的方式執行影像處理, 只能處理規則有寫到的狀況, 若遇到新的狀況則需要以人工的方式調整規則之後才能處理新的狀況.

  • 類神經網路
    近年來, 隨著機器學習在影像處理的能力有著顯著的增長, 尤其是卷積神經網路(CNN)很適合處理影像領域的資料, 因此影像辨識成為機器學習很熱門的領域.
    在影像辨識應用中可分為下列四類

    • 影像分類:單一影像識別, 例如可分辨影像裡有狗或有貓
    • 影像分類+定位:除了可以識別單一影像之外, 也可以標示出該影像的位置在哪裡, 例如機器可以跟你說圖片裡有一隻狗而且狗的位置在右下方.
    • 物件偵測:在一張有多個物體的圖片, 可以將圖片中的每一物體分別區分出類別, 而且也能標示出每一物體的位置. 例如在路口的影像之中可以標示出車子在路口的哪個位置, 而且能標註這個物體是車子
    • 語意切割:可以做影像內容的割切, 把該物體的位置、大小、型態描繪出來. 例如標示出路口影像的車子或行人的輪廓.
  • OpenCV與類神經網路的關係.
    雖然OpenCV的規則式判斷方法較不具彈性, 但OpenCV的強項是圖檔的處理. 因此現在一般在做影像處理時, 仍然會套用OpenCV的套件來處理圖檔, 然後再以CNN進行模型的訓練, 兩者是相輔相成的關係.

機器視覺的處理流程

在處理機器視覺任務時, 以目前影像辨識的處理方式(也是Nilvana的方式)通常會包含下列流程:

  • 取得影像或圖檔:可以從公開的dataset取得或自行準備(拍照)訓練所需要的照片
  • 資料標註:使用較廣泛的監督式學習須將資料進行特徵標註,藉此訓練出可用模型
  • 資料前處理:將圖檔進行裁剪、補滿或其它處理,提升模型訓練時的效率,也能在模型推論時得到更好的結果
  • 資料擴增:利用不同方式增加有限資料的多樣性,例如:水平翻轉、色調調整等方式,藉此提高整體資料集的質量
  • 建立資料集版本:資料透過不同方式的前處理及擴增所產生出的不同版本,可將訓練出來的模型進行比較,觀察出哪些方式可能較適合
  • 執行訓練:選擇資料集版本、架構、參數、metrics之後執行訓練, 取得最佳權重的model
  • 部署模型:將模型部署後提供endpoint, 讓外部使用者可以存取endpoint後取得推論結果以進行二次開發.

下一篇我們將使用nilvana執行第一個步驟取得影像或圖檔.

參考資料

https://opencv.org/


上一篇
第四個範例-使用好用圖形化介面軟體執行口罩物件辨識
下一篇
口罩臉孔資料集的上傳
系列文
AI平台初學者工作坊: 從training、tracking到serving30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言